Dynamic file-based routing in a broadband communications system

ABSTRACT

Methods and systems consistent with the present invention provide broadband subscribers with dynamic, automatic routing information for accessing services offered by a service provider network ( 35 ) and/or content provider networks ( 40, 45 ). Client software on the subscriber&#39;s computer ( 10 ) retrieves a file such as an HyperText Markup Language (HTML) document from a predetermined server containing connection-oriented routing information for gaining access to various network services. The client software parses the HTML document and extracts the routing information. The client software then uses this routing information to populate and manipulate the subscriber computer ( 10 ) routing table.

CROSS-REFERENCES TO RELATED APPLICATIONS

[0001] This application is entitled to the benefit of Provisional PatentApplication Serial No. 60/404,458, filed on Aug. 19, 2002, bearingAttorney Docket No. 2002P13456US.

FIELD OF THE INVENTION

[0002] The present invention relates to communications systems, and moreparticularly to methods and systems for dynamically updating routingtables in a broadband communications system.

BACKGROUND

[0003] Routers route packets of data in and between networks, such asTransfer Control Protocol/Internet Protocol (TCP/IP) networks and theInternet. Routers use routing protocols and algorithms to map thetopology of networks and then share that routing information with otherrouters. Routers store routing information in routing tables. If anetwork gets congested or a connection fails, a router uses the routinginformation in its routing table in an effort to find an alternateroute.

[0004] Broadband communications systems present a number of uniquerouting challenges. Broadband subscribers are rarely sophisticatedenough to manually update their own routing table. As a result, theirrouting tables are often outdated and ineffective. In addition, whenbroadband subscribers access multiple Point to Point over Ethernet(PPPoE) sessions and multiple service providers, conventional systemstend simply to promote the route that corresponds to the last activeinterface. This can confuse routers and cause packets to beunintentionally dropped.

[0005] One attempt to deal with the challenges discussed above is thePPPoE Active Discovery Network (PADN). PADN is an extension to PPPoE,which provides a standard method for building Ponint to Point (PPP)sessions and encapsulating PPP packets over Ethernet. PADN packets mayinclude Internet Protocol (IP) routes that may be used by a Host, suchas a Broadband Remote Access Server (BRAS) to populate it's routingtable. Although PADN is an extension to PPPoE, it is not a standard andtherefore many Hosts do not support PADN packets. In addition,utilization of PADN requires considerable manual oversight by a serviceprovider, which can lead over time to unreliability.

SUMMARY OF THE INVENTION

[0006] With the foregoing in mind, methods and systems consistent withthe present invention provide dynamic up-to-date routing information tobroadband communications systems. Methods and systems consistent withthe present invention are compatible with existing Host equipment and donot require manual oversight by a subscriber or service provider. In anexemplary embodiment, service providers and/or content providersmaintain routing information in a standard HyperText Markup Language(HTML) file that is accessed by a subscriber's computer system. Thesubscriber's computer system parses the HTML file and extracts routinginformation to automatically populate it's routing table. Thesubscriber's computer system then periodically polls the HTML file forchanges and automatically updates its routing table when new routinginformation is available.

[0007] These and other objects, features, and advantages in accordancewith the present invention are provided in one embodiment by a method ofproviding routing information in a broadband communications system. Thebroadband communications system comprises a subscriber-data-processingsystem and at least one content-provider-data-processing system. Thesubscriber-data-processing system includes a client component of abroadband-access program. The method comprises the steps of (a)establishing at least one Point to Point over Ethernet (PPPoE) sessionbetween the subscriber-data-processing system and the at least onecontent-provider-data-processing system; (b) retrieving, by the clientcomponent on the subscriber-data-processing system, a file from apredetermined server containing routing information in a predetermineddata format; (c) parsing, by the client component of thesubscriber-data-processing system, the file to extract the routinginformation; and (d) populating, by the client component, a routingtable on the subscriber-data-processing system based on the routinginformation.

[0008] In another embodiment, a system is provided for supplying routinginformation in a broadband communications system. The system comprises asubscriber-data-processing system including a client component of abroadband-access program; at least one content-provider-data-processingsystem for providing content to the subscriber-data-processing systemvia at least one Point to Point over Ethernet (PPPoE) session; means forproviding the client component of the subscriber-data-processing systemwith a file from a predetermined server containing routing informationin a predetermined data format; means for parsing the file to extractthe routing information; and means for populating a routing table on thesubscriber-data-processing system based on the routing information.

[0009] In another embodiment, a computer-readable medium is providedthat contains instructions that cause a system to perform a method. Thecomputer system includes a client program on a subscriber-computersystem and a server program on a provider-computer system. The methodcomprises the steps of (a) establishing one or more Point to Point overEthernet (PPPoE) sessions between the subscriber-computer system and theprovider-computer system; (b) sending a file containing routinginformation in a predetermined data format from a predetermined serverby the server program to the client program; (c) parsing, by the clientprogram, the file to extract the routing information; (d) populating, bythe client program, a routing table on the subscriber-computer systembased on the routing information.

[0010] In yet another embodiment, a computer-readable memory device isprovided that is encoded with a data structure for transferring databetween a client program and a server program during a broadbandcommunications session. The data structure has entries comprisingrouting information in a predetermined format, maintained by the serverprogram and for use by the client program, for managing and updating arouting table.

BRIEF DESCRIPTION OF THE DRAWINGS

[0011] The invention is explained in more detail by way of example withreference to the following drawings:

[0012]FIG. 1 illustrates a communications system consistent with thepresent invention.

[0013]FIG. 2 is a flowchart illustrating steps of a method consistentwith the present invention.

[0014]FIG. 3 illustrates a route table consistent with the presentinvention.

[0015]FIG. 4 illustrates an HTML file consistent with an exemplaryembodiment of the present invention.

DETAILED DESCRIPTION

[0016]FIG. 1 illustrates a broadband-communications system consistentwith the present invention. The communications system includes asubscriber-data-processing system 10, such as a general-purpose computeror a mobile-computing device. The subscriber-data-processing system 10is connected to a Digital-Subscriber-Line-Access Multiplexer (DSLAM) 20through a Digital-Subscriber-Line (DSL) modem 15. AnAsynchronous-Transfer-Mode (ATM) network 25, including a router orBroadband Remote Access server (BRAS) 30, provides a path to aservice-provider network 35 and to content-provider networks 40, 45. Theservice-provider network 35 includes a service-provider data-processingsystem 37. The content-provider networks 40, 45 includecontent-provider-data-processing systems 42, 47.

[0017] Methods consistent with the present invention are implemented bya client component of broadband-access software (the “client component”)residing on the subscriber's data-processing system 10 and by aserver-component of broadband-access software (the “server component”)on the service provider's data-processing system 37 and/or on one oremore content providers' data-processing systems 42, 47. The clientcomponent and the server component work together to establish and managea subscriber's broadband connection.

[0018]FIG. 2 is a flowchart illustrating the steps of an exemplaryembodiment of the present invention. To establish broadbandcommunications, a subscriber begins by directing the client component toestablish a connection with a service provider. In response, the clientcomponent authenticates to the service provider's IP network andestablishes a broadband connection to the service provider (step 200).Once a connection is established, the service provider provides thesubscriber with information about available content providers and/orassociated services (step 205). The subscriber then selects a desiredcontent provider and/or service (step 210) and the client moduleestablishes a PPPoE session with the selected-content provider/service(step 215). The content provider authenticates the subscriber. Uponsuccessful authentication to the content provider, the content provideror the service provider sends the subscriber a file containing routinginformation for reaching the content provider (step 220). These stepsmay be repeated to establish connections with one or more additionalcontent providers.

[0019] The file sent to the subscriber is set up and maintained by thecontent provider or the service provider. The file is stored by thecontent provider or service provider on a predetermined server in apredetermined format for access and use by a subscriber. One of skill inthe art will appreciate that the predetermined format may be any dataformat suitable for conveying routing information to a subscriber.Examples include, but are not limited to, markup languages such asHyperText Markup Language (HTML), Extensible Markup Language (XML), andStandard Generalized Markup Language (SGML).

[0020] When the client component on the subscriber'sdata-processing-system receives the file containing routing informationin a predetermined data format, the client component parses the contentof the file to extract the routing information (step 225) and thenupdates the subscriber's routing table based on that routing information(step 230). The client component then periodically polls the file todetermine if its contents have changed and, if they have, the clientcomponent updates the subscriber's routing table accordingly (step 235).

[0021]FIG. 3 illustrates a typical routing table. Routing tables arewell-known. The routing table illustrated in FIG. 3 includes a firstcolumn, entitled “Network,” listing IP addresses corresponding tonetwork address of content providers. The second column, entitled“Mask,” provides sub-net addresses corresponding to content providers.The third column, entitled “Gateway,” provides addresses of gateways (orrouters) that provide access to content-provider networks. Column four,entitled “Interface,” identifies interfaces (or virtual adapters)associated with content providers. Column five, entitled “Metric,”specifies which interface to promote first.

[0022]FIG. 4 illustrates a list of HTML instructions from an exemplaryHTML file consistent with the present invention. The HTML file containsrouting information for populating a subscriber's routing table. Theclient component on the subscriber's data-processing-system parses thecontent of the HTML file to extract the routing information and thenupdates the subscriber's routing table accordingly. As shown in FIG. 4,the file may include both route-related and non-route-relatedinstructions. The route-related instructions may include, for example,instructions for manipulating aspects of the subscriber's routing table.In the HTLM file shown in FIG. 4, for example, lines 1 through 3 definethe polling period for the HTML file. The polling period instructs theclient component to poll the HTML file at a specified time interval. Inthis case, the time interval is specified as ten minutes. Lines 4through 13 include generic HTML instructions not related to the presentinvention. Line 14 is an HTML section header that identifies thebeginning of routing information. Lines 15 and 16 instruct the clientcomponent to add two specific routes, 205.87.72.0, 255.255.255.0,205.87.72.1,1 and 206.87.72.0, 255.255.255.0, 206.87.72.1,1, to thesubscriber's routing table. Line 17 instructs the client component todelete a route, 206.87.72.0, 255.255.255.0, 206.87.72.1,1, from thesubscriber's routing table. Line 18 instructs the client component notto delete the default route in the subscriber's routing table byspecifying a DeleteDefaultRoute value of 0. A DeleteDefaultRoute valueof 1 would instruct the client component to delete the default route.Line 19 specifies a Version identifier of 3. This Version identifier isused by the client component to determine whether the HTML file haschanged since the last time the client component accessed the file. Theclient component periodically polls the HTML file for updated content bycomparing the current Version identifier with the Version identifier forthe last HTML-routing-file accessed. If the Version number has changed,the client component uses the new HTML-routing-file to update thesubscriber's routing table to reflect the more current routinginformation.

[0023] The present invention has been described with reference to theaccompanying drawings that illustrate preferred embodiments of theinvention. The invention may, however, be embodied in many differentforms and should not be construed as limited to the embodiments setforth herein. Rather, these embodiments are provided so that thisdisclosure will be thorough and complete, and will fully convey thescope of the invention to those skilled in the art. Thus, the scope ofthe invention should be determined based upon the appended claims andtheir legal equivalents, rather than the specific embodiments describedabove.

What is claimed is:
 1. A method of providing routing information in abroadband communications system comprising a subscriber-data-processingsystem and at least one content-provider-data-processing system, whereinsaid subscriber-data-processing system includes a client component of abroadband-access program, the method comprising the steps of:establishing at least one Point to Point over Ethernet (PPPoE) sessionbetween said subscriber-data-processing system and said at least onecontent-provider-data-processing system; retrieving, by said clientcomponent on said subscriber-data-processing system, a file from apredetermined server containing routing information in a predetermineddata format; parsing, by said client component of saidsubscriber-data-processing system, said file to extract said routinginformation; and populating, by said client component, a routing tableon said subscriber-data-processing system based on said routinginformation.
 2. The method of claim 1 further including the steps ofpolling, by said client component, said file periodically to determinewhether a version identifier in said file has changed; and updating, bysaid client component, said routing table when said file has changed. 3.The method of claim 2 wherein said predetermined data format is a markuplanguage.
 4. The method of claim 3 wherein said predetermined dataformat is a markup language selected from the group consisting ofHyperText Markup Language (HTML), Extensible Markup Language (XML), andStandard Generalized Markup Language (SGML).
 5. The method of claim 1wherein said file includes instructions for adding a route in saidrouting table.
 6. The method of claim 1 wherein file includesinstructions for deleting a route in said routing table.
 7. The methodof claim 1 wherein said file includes instructions for deleting adefault route in said routing table.
 8. The method of claim 1 whereinsaid predetermined server is a server maintained by said contentprovider.
 9. The method of claim 1 wherein said predetermined server isa server maintained by a service provider providing a broadbandcommunications connection to said subscriber.
 10. A system for providingrouting information in a broadband communications system, comprising: asubscriber-data-processing system including a client component of abroadband-access program; at least one content-provider-data-processingsystem for providing content to said subscriber-data-processing systemvia at least one Point to Point over Ethernet (PPPoE) session; means forproviding said client component of said subscriber-data-processingsystem with a file from a predetermined server containing routinginformation in a predetermined data format; means for parsing said fileto extract said routing information; and means for populating a routingtable on said subscriber-data-processing system based on said routinginformation.
 11. The system of claim 8 further comprising means forpolling said file periodically to determine whether a version identifierin said file has changed; and means for updating said routing table whensaid file has changed.
 12. The system of claim 2 wherein saidpredetermined data format is a markup language.
 13. The system of claim3 wherein said predetermined data format is a markup language selectedfrom the group consisting of HyperText Markup Language (HTML),Extensible Markup Language (XML), and Standard Generalized MarkupLanguage (SGML).
 14. The system of claim 11 wherein said file includesdata for instructing said client component to add a route in saidrouting table.
 15. The system of claim 11 wherein said file includesdata for instructing said client component to delete a route in saidrouting table.
 16. The system of claim 11 wherein file includes data forinstructing said client component to delete a default route in saidrouting table.
 17. The system of claim 11 wherein said predeterminedserver is a server maintained by said content provider.
 18. The methodof claim 11 wherein said predetermined server is a server maintained bya service provider.
 19. A computer-readable medium containinginstructions that cause a system to perform a method, said computersystem including a client program on a subscriber-computer system and aserver program on a provider-computer system, the method comprising thesteps of: establishing one or more Point to Point over Ethernet (PPPoE)sessions between said subscriber-computer system and saidprovider-computer system; sending a file containing routing informationin a predetermined data format from a predetermined server by saidserver program to said client program; parsing, by said client program,said file to extract said routing information; populating, by saidclient program, a routing table on said subscriber-computer system basedon said routing information.
 20. The computer-readable medium of claim19 wherein said method further comprises the steps of pollingperiodically, by said client program, said file to determine if saidfile has changed and, if said file has changed, updating said routingtable based on said changed file.
 21. The computer-readable medium ofclaim 2 wherein said predetermined data format is a markup language. 22.The computer-readable medium of claim 3 wherein said predetermined dataformat is a markup language selected from the group consisting ofHyperText Markup Language (HTML), Extensible Markup Language (XML), andStandard Generalized Markup Language (SGML).
 23. The computer-readablemedium of claim 19 wherein said HTML code includes an instruction foradding a route in said routing table.
 24. The computer-readable mediumof claim 20 wherein said file includes an instruction for deleting aroute in said routing table.
 25. The computer-readable medium of claim20 wherein said file includes an instruction for deleting a defaultroute in said routing table.
 26. The computer-readable medium of claim20 wherein said predetermined server is a server maintained by a serviceprovider.
 27. The computer-readable medium of claim 16 wherein saidpredetermined server is a server maintained by a content provider.
 28. Acomputer-readable memory device encoded with a data structure fortransferring data between a client program and a server program during abroadband communications session, the data structure having entriescomprising: routing information in a predetermined format, maintained bysaid server program and for use by said client program, for managing andupdating a routing table.
 29. The computer-readable memory device ofclaim 28 wherein said predetermined format is a markup language.
 30. Thecomputer-readable memory device of claim 23 wherein said predetermineddata format is a markup language selected from the group consisting ofHyperText Markup Language (HTML), Extensible Markup Language (XML), andStandard Generalized Markup Language (SGML).